A contact center manages all client contacts of a business or other entity through a variety of mediums, such as telephone, fax, letter, e-mail and, increasingly, online live chat. Distinct from call centers, that purely handle telephone correspondence, contact centers have a variety of roles that combine to provide an all encompassing solution to client and customer contact. Contact centers have many different configurations.
A common type of contact center employs queues of contact center agents and work items and complex work assignment algorithms in an attempt to provide optimal customer service. For example, in skill-based queues a work item queue is paired with a corresponding resource queue. When work items are received at the Automated Contact Distributor (ACD), the attributes of the work item are analyzed, and the work item is placed in a specific queue based on its attributes. Similarly, when a contact center resource (often an agent) comes on line they are assigned to one or more resource queues that also have a corresponding skillset associated therewith. Since skill queues are provided in work item/resource pairs, the next available agent in a resource queue is assigned the next work item waiting in the work item queue. While there have been some solutions to make this queue and assignment structure more flexible, every solution has always been hampered by the notion of utilizing a number of queues.
To improve efficiency, a contact center will typically segment contacts into many different queues. This segmentation may be by service, language, media type, region, and/or customer type. This can quickly result in many thousands of queues. Each of these queues needs to be configured, managed, monitored and reported on. Also, as agents gain new skills and improve their expertise levels, there is a need to constantly reassign agents to queues. Furthermore, when an agent gains new skills there is a significant cost in administration and operational costs of the contact center. Complexity increases because agents are typically in multiple queues simultaneously, and the new skills of an agent need to be updated in all relevant queues. Updating these changes in agent skills is a time-consuming and expensive task, which usually has to be performed with some amount of manual oversight. All of these factors add significant complexity and cost to the running of the center.
To address these issues, a queueless contact center has been developed. A queueless contact center discards queues and uses pools of resources, work items and qualifier sets and creates a qualification bit map for each pool. One-to-one optimal matching of work items and resources can be achieved by determining which resources are qualified to be assigned to a selected work item, which qualified resources are eligible to be assigned to the selected work item, and which eligible resources are most suitable to be assigned to the selected work item. The bit maps can enable ultra-fast mapping to determine which of the various resources is most suitable to be assigned to the selected work item.
Contact centers often cannot achieve perfect matching. Specifically, it is often the case that a customer is not initially routed to the best agent for handling his or her contact. When the contact is a call, this is usually not a significant consideration as the customer is more concerned with receiving immediate and adequate assistance rather than waiting for the best or optimal agent to service the customer's needs. When a first agent is unable to handle a call, then the agent can transfer the call to a supervisor or some other optimal agent when such an agent becomes available. These transfers are almost always done with the customer's knowledge.
When a contact is an instant message or webchat, there is still the desire to receive immediate assistance, which means that the contact does not typically get routed to the optimal agent.